package com.bbva.kyfb.kyfbutils.mifid;

import com.bbva.jee.arq.spring.core.contexto.ArqSpringContext;
import com.bbva.jee.arq.spring.core.util.excepciones.PropiedadNoEncontradaExcepcion;

/**
 * The Class MifidFunctions.
 *
 * @author xe22570
 */
public class MifidFunctions {

	/**
	 * Es orden mifid.
	 *
	 * @param tipoOrden the tipo orden
	 * @return the string
	 * @throws PropiedadNoEncontradaExcepcion the propiedad no encontrada excepcion
	 */
	public static String esOrdenMifid(String tipoOrden) throws PropiedadNoEncontradaExcepcion {
		return isOrdenMifid(tipoOrden)?"S":"N";
	}

	/**
	 * Es orden mifid.
	 *
	 * @param tipoOrden the tipo orden
	 * @return the string
	 * @throws PropiedadNoEncontradaExcepcion the propiedad no encontrada excepcion
	 */
	public static boolean isOrdenMifid(String tipoOrden) throws PropiedadNoEncontradaExcepcion {
		String tiposOrdenesMifid = ArqSpringContext.getPropiedad("tiposOrdenesMifid");
		return (tipoOrden != null && tiposOrdenesMifid.contains(tipoOrden.toUpperCase()));
	}

	/**
	 * Es orden mifid compra venta.
	 *
	 * @param tipoOrden the tipo orden
	 * @return true, if successful
	 * @throws PropiedadNoEncontradaExcepcion the propiedad no encontrada excepcion
	 */
	public static boolean esOrdenMifidCompraVenta(String tipoOrden) throws PropiedadNoEncontradaExcepcion {
		boolean esCompraVenta = false;
		String tiposOrdenesMifidCompraVenta = ArqSpringContext.getPropiedad("tiposOrdenesCompraVenta");
		if (tipoOrden != null) {
			esCompraVenta = tiposOrdenesMifidCompraVenta.contains(tipoOrden.toUpperCase());
		}
		return esCompraVenta;
	}
	
	/**
	 * Gets the cod prod.
	 *
	 * @param tipoOrden the tipo orden
	 * @return the cod prod
	 * @throws PropiedadNoEncontradaExcepcion the propiedad no encontrada excepcion
	 */
	public static int getCodProd(String tipoOrden) throws PropiedadNoEncontradaExcepcion {
		int codProd = 1;
		String tiposOrdenesMifidSplit =   ArqSpringContext.getPropiedad("tiposOrdenesMifidSplit");
		String splitChar =  ArqSpringContext.getPropiedad("splitChar");
		String [] tiposOrd = tiposOrdenesMifidSplit.split(splitChar);
		int contTiposOrd = 0;
		boolean encontrado = false;
		while (contTiposOrd < tiposOrd.length && !encontrado){
			encontrado = tiposOrd[contTiposOrd].contains(tipoOrden);
			contTiposOrd++;
		}
		
		if (encontrado){
			codProd = contTiposOrd;
		}

		return codProd;
	}

}
